package com.xbongbong.paas.pojo.dto;

import com.xbongbong.paas.toolbox.helper.PageHelper;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author 吴洪波
 * @version v1.0
 * @date 21/06/29 14:55
 * @since v1.0
 */
@Getter
@Setter
public class AliyunCallCenterListDTO extends YunCallRecordDTO {

    private static final Integer DEFAULT_OPERATE_LOG_PAGE_SIZE = PageHelper.PAGE_SIZE;

    /**
     * 分页当前页
     */
    private Integer page;

    /**
     * 分页每页记录数
     */
    private Integer pageSize;

    /**
     * 通话ID
     */
    private String callId;

    /**
     * 团队ID
     */
    private Long depId;

    /**
     * 所属团队编号
     */
    private String teamId;

    /**
     * 查询的用户ID
     */
    private String agentUserId;

    /**
     * 对象id saas的refId变成dataId
     */
    private Integer dataId;

    /**
     * 对象类型，参考 XbbRefTypeEnum
     */
    private Integer businessType;

    /**
     * 通话类型，0: 呼入（度言：INBOUND）；1：呼出（度言：OUTBOUND）
     */
    private Integer type;

    /**
     * 通话结果，1: 成功；0：失败（度言字段 outcome 呼叫结果，SUCCESS: 成功；FAIL：失败）；2：需要同步
     */
    private Integer result;

    /**
     * 姓名或号码的模糊查询
     */
    private String fuzzySearch;

    /**
     * 用户ID查询
     */
    private String searchUserId;

    /**
     * 用户ID查询集合
     */
    private List<String> searchUserIdList;

    /**
     * 呼叫号码
     */
    private String target;

    /**
     * 录音是否已经翻译成功
     */
    private Boolean audioTranslated;

    /**
     * 电话类型
     */
    private Long codeId;

    /**
     * 通话时长（筛选开始区间）
     */
    private Integer durationStart;

    /**
     * 通话时长（筛选结束区间）
     */
    private Integer durationEnd;

    /**
     * 用于查询一段时间段内通话记录，开始时间和结束时间的字符串，起止时间不超过1个月（例：2017-11-13,2017-11-16)
     */
    private List<String> dateRange;

    /**
     * 用于查询一段时间段内通话记录，开始时间的时间戳，起止时间不超过1个月，单位：秒
     */
    private Integer startTime;

    /**
     * 用于查询一段时间段内通话记录，结束时间的时间戳，起止时间不超过1个月，单位：秒
     */
    private Integer endTime;

    /**
     * 另一方号码
     */
    private String anotherPhoneNum;

    /**
     * 主叫号码
     */
    private String agentPhoneNum;

    /**
     * 员工ID
     */
    private String userName;

    /**
     * 技能组
     */
    private String skillGroupNames;

    /**
     * 排序字段
     */
    private String sortField;

    /**
     * 排序字段
     */
    private String sort;
    /*
     * 阿里：实例id
     */
    private String instanceId;
    /**
     * 是否是同步的查询
     */
    private Boolean isSync;
    /**
     * 是否是同步的查询
     */
    private List<Integer> callSourceList;

}
